<?php

class KecamatansController extends \BaseController {

	/**
	 * Display a listing of kecamatans
	 *
	 * @return Response
	 */
	public function dataTable()
	{
		$kecamatans = DB::table('kecamatans')->leftJoin('kabupatens','kabupatens.id','=','kecamatans.kabupaten_id')->leftJoin('provinsis','provinsis.id','=','kabupatens.provinsi_id')->where('kecamatans.is_active', '=', '1')->select(array('kecamatans.id','provinsis.nama AS provinsi_nama','kabupatens.nama AS kabupaten_nama','kecamatans.nama','kecamatans.keterangan AS keterangan'));
		return Datatables::of($kecamatans)
		->add_column('operations', '<div class="btn-group">
                                        <a href="#" class="btn btn-default btn-detail" data-provinsi="{{ $provinsi_nama }}" data-kabupaten="{{ $kabupaten_nama }}" data-nama="{{ $nama }}" data-keterangan="{{ $keterangan }}"><i class="fa fa-list text-danger" data-toggle="tooltip" data-placement="top" data-original-title="Detail"></i></a>
                                        {{ HTML::decode(link_to_route(\'kecamatans.edit\', \'<i class="fa fa-pencil text-warning" data-toggle="tooltip" data-placement="top" data-original-title="Edit"></i>\', $id, array(\'class\'=>\'btn btn-default btn-edit\'))) }}
                                        <a href="#" class="btn btn-default btn-delete" data-form=\'{{Form::model($id,array(\'route\'=>array(\'kecamatans.destroy\',$id),\'method\'=>\'DELETE\',\'class\'=>\'formDelete\'))}}{{Form::close()}}\'><i class="fa fa-times text-danger" data-toggle="tooltip" data-placement="top" data-original-title="Delete"></i></a>
	                                </div>')
		->make();
	}

	public function dataKabupaten()
	{
		$kabupatens = DB::table('kabupatens')->leftJoin('provinsis','provinsis.id','=','kabupatens.provinsi_id')->where('kabupatens.is_active', '=', '1')
		->select(array('kabupatens.id','provinsis.nama AS provinsi_nama','kabupatens.nama'));
		return Datatables::of($kabupatens)
		->edit_column('nama','<span data-id="{{ $id }}" data-nama="{{ $nama }}">{{ $nama }}</span>')
		->make();
	}

	public function index()
	{
		// $kecamatans = Kecamatan::all();

		// $kecamatans = DB::table('kecamatans')->leftJoin('kabupatens','kabupatens.id','=','kecamatans.kabupaten_id')->leftJoin('provinsis','provinsis.id','=','kabupatens.provinsi_id')->where('kecamatans.is_active', '=', '1')->orderBy('provinsis.nama','ASC')->orderBy('kabupatens.nama','ASC')->orderBy('nama','ASC')->get(array('kecamatans.*','provinsis.nama AS nama_prov','kabupatens.nama AS nama_kab'));

		return View::make('kecamatans.index');
	}

	/**
	 * Show the form for creating a new kecamatan
	 *
	 * @return Response
	 */
	public function create()
	{
		// return View::make('kecamatans.create');

		$kabupatens = array('' => '- - Pilih Kabupaten - -') + Kabupaten::where('is_active', '=', '1')->orderBy('nama','ASC')->lists('nama','id');
		return View::make('kecamatans.create', array('kabupatens'=>$kabupatens));
	}

	/**
	 * Store a newly created kecamatan in storage.
	 *
	 * @return Response
	 */
	public function store()
	{
		$validator = Validator::make($data = Input::all(), Kecamatan::$rules);

		if ($validator->fails())
		{
			return Redirect::back()->withErrors($validator)->withInput();
		}

		Kecamatan::create($data);

		return Redirect::route('kecamatans.index');
	}

	/**
	 * Display the specified kecamatan.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function show($id)
	{
		$kecamatan = Kecamatan::findOrFail($id);

		return View::make('kecamatans.show', compact('kecamatan'));
	}

	/**
	 * Show the form for editing the specified kecamatan.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function edit($id)
	{
		// $kabupatens = Kabupaten::where('is_active', '=', '1')->orderBy('nama','ASC')->lists('nama','id');

		$kecamatan = Kecamatan::find($id);

		// return View::make('kecamatans.edit', compact('kecamatan'));

		return View::make('kecamatans.edit')->with(compact('kecamatan'));
	}

	/**
	 * Update the specified resource in storage.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function update($id)
	{
		$validator = Validator::make($data = Input::all(), Kecamatan::$rules);

		if ($validator->fails())
		{
			return Redirect::back()->withErrors($validator)->withInput();
		}

		Kecamatan::create($data);

		$kecamatan = Kecamatan::findOrFail($id);

		// $validator = Validator::make($data = Input::all(), Kecamatan::$rules);

		// if ($validator->fails())
		// {
		// 	return Redirect::back()->withErrors($validator)->withInput();
		// }

		// $kecamatan->update($data);

		$kecamatan->is_active = 0;

		$kecamatan->save();

		return Redirect::route('kecamatans.index');
	}

	/**
	 * Remove the specified resource from storage.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function destroy($id)
	{
		// Kecamatan::destroy($id);

		$kecamatan = Kecamatan::findOrFail($id);

		$kecamatan->is_active = 0;
		$kecamatan->user_id = Auth::user()->id;
		$kecamatan->action = 3;

		$kecamatan->save();

		return Redirect::route('kecamatans.index');
	}

	public function getComboViewKelurahans()
	{
		$id_kecamatan      = Input::get('id_kecamatan');
		$kecamatan         = Kecamatan::findOrFail($id_kecamatan);
		$kelurahans        = $kecamatan->kelurahans;
		
		if(!is_null(Lingkungan::active()->first())) {
			$lingkungan        = Lingkungan::active()->first()->toArray();    		
			$current_kelurahan = $lingkungan['kelurahan_id'];		

			return View::make('kecamatans.partials.combo_view_kelurahans')
				->with(compact('kelurahans'))
				->with(compact('current_kelurahan'));						
		}else{			
			return View::make('kecamatans.partials.combo_view_kelurahans')
				->with(compact('kelurahans'));						
		}		
	}

}